﻿// Процедура формирует структуру настроек отчета для удаленного формирования
&НаСервере
Процедура ЗапомнитьНастройкиОтчета()
    
    СтруктураНастроек = Новый Структура;
    СтруктураНастроек.Вставить("Склад", Склад);
    СтруктураНастроек.Вставить("Товар", Товар);
    
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.УстановитьСтроку();
    СериализаторXDTO.ЗаписатьXML(ЗаписьXML, СтруктураНастроек);
    Настройки = ЗаписьXML.Закрыть();
    
КонецПроцедуры

//////////////////////////////////////////////////////////////////////////////// 
// ОБРАБОТЧИКИ СОБЫТИЙ 
// 
&НаКлиенте
Процедура ОК(Команда)
    
    ЗапомнитьНастройкиОтчета();
    Закрыть(КодВозвратаДиалога.ОК);
    
КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    Если Параметры.ОбновлятьПриОбмене <> Неопределено Тогда
         ОбновлятьПриОбмене = Параметры.ОбновлятьПриОбмене;
    КонецЕсли;
    
    Если Параметры.Настройки <> Неопределено Тогда
         Настройки = Параметры.Настройки;
    КонецЕсли;

    Если Настройки <> "" Тогда
        ЧтениеXML = Новый ЧтениеXML;
        ЧтениеXML.УстановитьСтроку(Настройки);
        СтруктураНастроек = СериализаторXDTO.ПрочитатьXML(ЧтениеXML, Тип("Структура"));
        ЭлементНастройки = Неопределено;
        СтруктураНастроек.Свойство("Товар", ЭлементНастройки);
        Если ЭлементНастройки <> Неопределено Тогда
            Товар = ЭлементНастройки;
        КонецЕсли;
        СтруктураНастроек.Свойство("Склад",  ЭлементНастройки);
        Если ЭлементНастройки <> Неопределено Тогда
            Склад = ЭлементНастройки;
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры
